#ifndef __PLATFORM_OCAMERA_H__
#define __PLATFORM_OCAMERA_H__

namespace platform
{
	typedef delegate<void (float deltaX, float deltaY)> oCameraHandler;

	class oDLL oCamera: public CCNode
	{
	public:
		oCamera();
		virtual ~oCamera();
		virtual void update(ccTime dt);
		PROPERTY_REF(CCRect, _boudary, Boudary);
		PROPERTY_REF(CCSize, _view, View);
		virtual void setPosition(const CCPoint& var);
		void lockAt(CCNode* target);
		virtual CCAffineTransform nodeToParentTransform();
		oCameraHandler moved;
		static oCamera* node();
	private:
		CCNode* _target;
	};
}

#endif